[转载] javascript中call()、apply()、bind()的用法终于理解(自我觉得整理后比原作者更好,当然原作者也是很厉害的,简单粗暴的讲清楚了~)
call()、apply()、bind()是三种重新定义this指针指向的方法。
先捋一波this指针的指向:
1 | var name = "小王", age = 17 |
可见,this指针默认指向使用者所挂载的对象
然后就是call()、apply()、bind()三个方法的使用对比:
1 | var obj = { |
总结:
1) call、bind、apply三个函数的第一个参数定义了this指针的指向对象;
2) 从第二个参数起都是函数传参(允许各种类型,函数、对象都可),call和bind用逗号分隔传入,apply用数组传入;
3) call和apply直接执行函数,返回执行结果;bind返回的是新的函数,需要调用才执行。